package com.jindy.module.engineeringcost.mapper;


import com.jindy.module.engineeringcost.domain.EngineeringCost;
import com.jindy.module.engineeringcost.domain.EngineeringCostApprovalResult;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 【工程部费用】Mapper接口
 * 
 * @author jindy
 * @date 2023-01-31
 */
public interface EngineeringCostMapper 
{
    /**
     * 查询【工程部费用】
     * 
     * @param id 【工程部费用】主键
     * @return 【工程部费用】
     */
    public EngineeringCost selectEngineeringCostById(Long id);

    /**
     * 查询【工程部费用】列表
     * 
     * @param engineeringCost 【工程部费用】
     * @return 【工程部费用】集合
     */
    public List<EngineeringCost> selectEngineeringCostList(EngineeringCost engineeringCost);

    /**
     * 新增【工程部费用】
     * 
     * @param engineeringCost 【工程部费用】
     * @return 结果
     */
    public int insertEngineeringCost(EngineeringCost engineeringCost);

    /**
     * 修改【工程部费用】
     * 
     * @param engineeringCost 【工程部费用】
     * @return 结果
     */
    public int updateEngineeringCost(EngineeringCost engineeringCost);

    /**
     * 删除【工程部费用】
     * 
     * @param id 【工程部费用】主键
     * @return 结果
     */
    public int deleteEngineeringCostById(Long id);

    /**
     * 批量删除【工程部费用】
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEngineeringCostByIds(Long[] ids);


    /**
     * 查询【工程部费用】列表 (含数据权限)
     *
     * @param engineeringCost 【工程部费用】
     * @param  loginUserUserId 登录人id
     * @return 【工程部费用】
     */
    List<EngineeringCostApprovalResult> selectEngineeringCostListPermission(@Param("engineeringCost")EngineeringCost engineeringCost, @Param("loginUserUserId") Long loginUserUserId);
}
